from Crypto.Util.number import bytes_to_long, getPrime
from secrets import flag

p,q = getPrime(512),getPrime(512)
n = p * q
_p = int(bin(p)[2:][::-1],2)#先二进制转换，丢弃前两位，倒序，二进制输出
e = 65537
m = bytes_to_long(flag)
c = pow(m,e,n)
print(n)
print(e)
print(c)
print(_p^q)
'''
127003138248767878216087746092048765422017641585502083524432000355338408532541607865197910579606631797065299031898223525594806324068716151137783179018112665582625201123056770957620662712083897966775244206284988606422553807186125185230229622748491730778439493335081760134674989431869363324785659619359492375443
65537
28606725830066334603624115469720836321272317195642525617463167689108174235290116089778712864587832608893147665928536755331808728420928314539950719845140223156504618276048603869925007708152189255298965799947640133200085111741254836861931603704948557525706684578721413729858589789350780583640229671796472384358
3713689996494536207275880780575695141387196713829050036258614350034484757813937841042992412600156055738200137589955494058780961235985782374795104819263776
'''
